# Update a product

Updates an existing product.

Endpoint: PATCH /v1/products/{productUuid}
Version: 1.1.0
Security: Bearer

## Path parameters:

  - `productUuid` (string, required)
    The unique identifier of the product to update.

## Request fields (application/json):

  - `familyUuid` (string,null)
    Updated family UUID. Set to null to remove family association.

  - `brandUuid` (string,null)
    Updated brand UUID. Set to null to remove brand association.

  - `code` (string,null)
    Updated unique code identifier.

  - `displayName` (string,null)
    Updated display name of the product.

## Response 200 fields (application/json):

  - `uuid` (string, required)
    Unique identifier for this product.

  - `familyUuid` (string,null)
    Identifier of the family defining structure and requirements for this product.

  - `parentUuid` (string,null)
    Identifier of the parent product for variant relationships.

  - `brandUuid` (string,null)
    Identifier of the brand associated with this product.

  - `createdAt` (string, required)
    Timestamp when this product was created.
    Example: "2025-11-23T14:15:22.123456Z"

  - `updatedAt` (string, required)
    Timestamp when this product was last modified.
    Example: "2025-11-23T14:15:22.123456Z"

  - `removedAt` (string,null)
    Timestamp when this product was removed. Null if not removed.
    Example: "2025-11-23T14:15:22.123456Z"

  - `archivedAt` (string,null)
    Timestamp when this product was archived. Null if not archived.
    Example: "2025-11-23T14:15:22.123456Z"

  - `status` (string, required)
    Lifecycle status of a product.
    Enum: "draft", "published", "unpublished", "archived", "removed"

  - `type` (string, required)
    Product type defining variant behavior.
    Enum: "simple", "variantParent", "variant"

  - `code` (string, required)
    Unique code identifier for this product.

  - `displayName` (string, required)
    The display name of the product.

## Response 401 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

## Response 403 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)

## Response 404 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)

## Response 409 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)

## Response 422 fields (application/problem+json):

  - `errors` (array)

  - `errors.code` (string, required)

  - `errors.message` (string, required)

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)

## Response 500 fields (application/problem+json):

  - `type` (string,null)

  - `title` (string,null)

  - `status` (integer,null)

  - `detail` (string,null)

  - `instance` (string,null)

  - `correlationId` (string,null)


